/*
 * @Author: Clark
 * @Email: haixuanwoTxh@gmail.com
 * @Date: 2023-01-05 10:28:32
 * @LastEditors: Clark
 * @LastEditTime: 2023-01-05 10:31:59
 * @Description: file content
 */

#include "apue.h"
#include <sys/wait.h>

int main()
{
    pid_t pid;
    int status;

    // 1、第一个进程
    if ((pid = fork()) < 0)
    {
        err_sys("fork error");
    }
    else if (0 == pid)
    {
        exit(7);
    }

    if (wait(&status) != pid)
    {
        err_sys("wait error");
    }
    pr_exit(status);

    // 2、第二个进程
    if ((pid = fork()) < 0)
    {
        err_sys("fork error");
    }
    else if (0 == pid)
    {
        abort();
    }

    if (wait(&status) != pid)
    {
        err_sys("wait error");
    }
    pr_exit(status);

    // 3、第三个进程
    if ((pid = fork()) < 0)
    {
        err_sys("fork error");
    }
    else if (0 == pid)
    {
        status /= 0;
    }

    if (wait(&status) != pid)
    {
        err_sys("wait error");
    }
    pr_exit(status);

    exit(0);
}
